package com.campus.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.campus.entity.PostDetailDTO;
import com.campus.entity.PostLikes;
import com.campus.entity.Posts;
import org.apache.ibatis.annotations.Param;
import java.util.List;

public interface PostsMapper extends BaseMapper {
    /**
     * 添加帖子
     * @param post
     * @return
     */
    int insertPost(Posts post);
    
    /**
     * 查询指定分类的帖子
     */
    List<Posts> getPostsList(@Param("categoryId") int categoryId);
    
    //根据id查询帖子
    Posts getPostById(String postId);
    
    //根据id查询帖子详情（包含用户和分类信息）
    PostDetailDTO getPostDetailById(String postId);

    List<Posts> getUserPosts(String userId);

    String getCategoryIdByPostId(String postId);
    
    /**
     * 更新帖子浏览量
     * @param postId
     * @return
     */
    int updateViewsCount(String postId);
    
    /**
     * 更新帖子点赞数
     * @param postId
     * @param likesCount
     * @return
     */
    int updateLikesCount(@Param("postId") String postId, @Param("likesCount") int likesCount);
    
    /**
     * 更新帖子热力值
     * @param postId
     * @param hotScore
     * @return
     */
    int updateHotScore(@Param("postId") String postId, @Param("hotScore") int hotScore);
    
    /**
     * 根据ID删除帖子
     * @param postId
     * @return
     */
    int deletePostById(String postId);

    /**
     * 更新帖子内容
     */
    int updatePostById(Posts post);
}
